<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">


    <title>变量 - JavaScript</title>
</head>
<body>
    <h1>变量</h1>

    <script type="text/javascript">


        // --------------------------------------------------------------------
        // -- 变量
        // --------------------------------------------------------------------

        // -----------------------------
        // 1. var
        // -----------------------------
        /*
            这个语法可以用来声明局部变量和全局变量。
            语法：
                声明：var 变量名;
                声明并赋值：var 变量名 = 值;
                声明多个变量：var 变量1, 变量2;
                声明多个变量并赋值：var 变量1 = 值, 变量2 = 值;
        */
        // 1.1 声明一个变量并赋值，并打印。
        // 1.2 再次声明上面那个变量并赋值，并打印，观察一下出现什么情况。


        // -----------------------------
        // 2. let
        // -----------------------------
        /*
            这个语法可以用来声明块作用域的局部变量。
            在相同的作用域内，已被let声明的变量无法被var和let声明第二次。
            语法：
                声明：let 变量名;
                声明并赋值：let 变量名 = 值;
                声明多个变量：let 变量1, 变量2;
                声明多个变量并赋值：let 变量1 = 值, 变量2 = 值;
        */
        // 2.1 声明一个变量并赋值，并打印。
        // 2.2 再次声明上面那个变量并赋值，并打印，观察一下出现什么情况。

        // -----------------------------
        // 3. const
        // -----------------------------
        /*
            用const声明的是常量，一旦声明值不可改变，而且声明时一定要给常量一个值，也就是声明必须初始化。
            语法: const 常量名 = 值;
         */
        // 3.1 声明一个常量，值为10，然后尝试更改这个值


        // 3.2 声明一个常量为user，值为一个对象：{id: 1, name: "tom"}，
        //  尝试修改这个变量值为：{id: 1, name: "jack"}
        //  尝试修改其中的name为：jack


        // -----------------------------
        // 4. var、let、const用哪个？
        // -----------------------------


        // -----------------------------
        // 5. 变量命名规则
        // -----------------------------
        /*
            一个 JavaScript 标识符必须以字母、下划线（_）或者美元符号（$）开头；后续的字符也可以是数字（0-9）。
            因为 JavaScript 语言是区分大小写的，所以字母可以是从“A”到“Z”的大写字母和从“a”到“z”的小写字母。

            注：JavaScript 对大小写敏感，myVariable 和 myvariable 是不同的。如果代码出现问题了，先检查一下大小写！
            注：不能使用JavaScript关键词。
         */
        // 5.1 Number_hits，temp99，function, $credit，_name，9age，name$ 这边几个变量名是否合法？


    </script>
</body>
</html>